// creatUserList: 此函数执行会返回一个数组，数组里面包含两个用户信息
export function creatUserList() {
  return [
    {
      userId: 1,
      username: '一路向东',
      password: '111111',
      avatar:
        'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif',
      desc: '系统管理员',
      roles: ['admin'],
      buttons: ['cuser.detail'],
      routes: ['home'],
      token: 'Admin',
    },
    {
      userId: 2,
      username: 'system',
      password: '111111',
      avatar:
        'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif',
      desc: '平台管路员',
      roles: ['system'],
      buttons: ['cuser.detail', 'cuser.user'],
      routes: ['home'],
      token: 'System Token',
    },
  ]
}

// 对外暴露一个数组：数组里面包含两个接口
// 1 登录的假接口 2 获取用户信息的假接口
export default [
  // 用户登录接口
  {
    url: '/mock/user/login', // 请求地址
    method: 'post', // 请求方式
    response: ({ body }) => {
      // 获取请求体携带的用户名与密码
      const { username, password } = body
      // 调用获取用户信息函数，判断是否有此用户
      const checkUser = creatUserList().find(
        (item) => item.username === username && item.password === password,
      )
      // 没有用户 返回失败信息
      if (!checkUser) {
        return {
          code: 201,
          data: {
            message: '账号或密码错误',
          },
        }
      }
      // 如果有 返回成功信息
      const { token } = checkUser
      return {
        code: 200,
        data: {
          token,
          checkUser,
        },
      }
    },
  },
  // 获取用户信息
  {
    url: '/mock/user/info',
    method: 'get',
    response: (request) => {
      // 获取请求头携带的token
      const token = request.headers.token
      // 查看用户信息是否包含此 token 用户
      const checkUser = creatUserList().find((item) => item.token === token)
      // // 没有 返回失败信息
      if (!checkUser) {
        return {
          code: 201,
          data: {
            message: '获取用户信息失败,请联系管理员',
          },
        }
      }
      // 如果有 则返回成功信息
      return {
        code: 200,
        data: {
          checkUser
        },
      }
    },
  },
]
